package com.woniuxy.rms.dao;

import com.woniuxy.rms.pojo.ServerMenu;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.Date;
import java.util.List;

public interface ServerMenuMapper {
    int deleteByPrimaryKey(Long id);

    int insert(ServerMenu record);

    int insertSelective(ServerMenu record);

    ServerMenu selectByPrimaryKey(Long id);

    int updateByPrimaryKeySelective(ServerMenu record);

    int updateByPrimaryKey(ServerMenu record);

    /**
     * Description : 服务菜单分页查询  <br/>
     * ChangeLog : 1. 创建 (2020/3/27 0027 上午 11:48 [Administrator]);
     * @return java.util.List<com.woniuxy.rms.pojo.ServerMenu>
    */
    @Select("select * from server_menu")
    List<ServerMenu> findAll();

    /**
     * Description : 根据菜单名称查询  <br/>
     * ChangeLog : 1. 创建 (2020/3/27 0027 下午 4:00 [Administrator]);
     * @param serverName
     * @return com.woniuxy.rms.pojo.ServerMenu
    */
    @Select("select * from server_menu where server_name = #{value}")
    List<ServerMenu> findByName(String serverName);

    @Select("select * from server_menu where id = #{value}")
    ServerMenu findById(Long id);

    /**
     * Description : 批量删除  <br/>
     * ChangeLog : 1. 创建 (2020/3/27 0027 下午 7:00 [Administrator]);
     * @param menuIds
     * @return void
    */
    void batchDel(List<Long> menuIds);

    /**
     * Description : 查找父id  <br/>
     * ChangeLog : 1. 创建 (2020/3/27 0027 下午 7:14 [Administrator]);
     * @param menuIds
     * @return java.util.List<java.lang.Long>
    */
    List<Long> findPerentId(List<Long> menuIds);

    /**
     * Description : 改变服务菜单状态  <br/>
     * ChangeLog : 1. 创建 (2020/3/27 0027 下午 7:25 [Administrator]);
     * @param id
     * @param status  0-待审核 1-审核通过
     * @param date
     * @return void
    */
    @Update("update server_menu set status = #{status},update_time = #{date} where id = #{id}")
    void updateStatus(@Param("id") Long id, @Param("status") Integer status,@Param("date") Date date);
}